﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using mvLibrary.controls;

namespace mvLibrary.Helpers.Clases.Segurizacion
{
    public class MenuesSegurizados
    {
        public string User { get; set; }
        public IList<string> MenuesConAccesoPermitido { get; set; }
        public const string FULL_ACCESS_PERMISSION = "FULLACCESS";

        public MenuesSegurizados(string user)
        {
            this.User = user;
            this.MenuesConAccesoPermitido = new List<string>();
        }

        internal void AgregarMenuPermitido(string menuPermitido)
        {
            this.MenuesConAccesoPermitido.Add(menuPermitido.ToUpper());
        }

        internal bool TieneAccesoFull(mvMenuItem menu)
        {
            string menuConAccesoFull = !string.IsNullOrEmpty(menu.FullAccessName) ? menu.FullAccessName.ToUpper() : string.Empty;
            return this.MenuesConAccesoPermitido.Contains(menuConAccesoFull);   
        }

        internal bool EstaSegurizado(mvMenuItem menu)
        {
            string nombreMenu = !string.IsNullOrEmpty(menu.SecurityName) ? menu.SecurityName.ToUpper() : string.Empty;
            return this.MenuesConAccesoPermitido.Contains(nombreMenu);
        }

        internal bool UserHasFullAccess()
        {
            return this.MenuesConAccesoPermitido.Contains(FULL_ACCESS_PERMISSION);
        }
    }
}
